package com.jack006.api.controller.user;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * @Classname HelloControllerApi
 * @Description 业务接口定义类
 * @Date 2021-06-10 08:15
 * @Created by jack
 */
@Api(value = "controller的标题",tags = "xxx 功能的 Controller")
public interface HelloControllerApi {

    /**
     * 运作：
     * 现在所有接口都在此暴露，实现都是在各自的微服务中
     * 本项目只写接口，不写实现，实现在各自的微服务工程中，因为以业务划分的微服务有很多
     * Controller 也会分散在各个微服务工程中，一旦多了很难统一管理和查看
     *
     * 其次，微服务的调用都是基于接口的
     * 如果不这么做，微服务之间的调用就需要相互依赖了
     * 耦合度也就很高了，皆苦的目的为了提供解耦
     *
     * 此外，本工程的接口其实就是一套规范，实现都是在各自的工程去做处理。
     * 目前我们使用 SpringBoot 作为接口的实现的，
     * 如果未来以后出现新的 java web 框架，那么我们不需要修改接口，
     * 只需要去修改对应的实现就可以了，这其实就是一个解耦的体现
     *
     * Swagger2 基于接口的自动文档生成
     * 所有配置文件只需要一份，就能在当前项目中去构建了，管理起来很方便
     *
     *
     */
    @ApiOperation(value = "hello的测试接口",notes = "hello的测试接口",httpMethod = "GET")
    @GetMapping("/hello")
    Object hello();

}
